home *** CD-ROM | disk | FTP | other *** search
Wrap
#!---------------------------------------------------------! #! ! #! Copyright 1994 by ToolCraft Development Corporation ! #! ! #! ALL RIGHTS RESERVED ! #! ! #!---------------------------------------------------------! #! #! #!=============================================================================! #! ! #! Extention for Global Declarations needed to use Power Popup ! #! ! #!=============================================================================! #EXTENSION(PowerPopupLib, 'ToolCraft Power Popup Global Declarations' ),APPLICATION,LAST,HLP('~PowerPopupLib') #DISPLAY('') #DISPLAY('This extension adds the Power Popupup Library and ') #DISPLAY('its function prototypes to your application. It is') #DISPLAY('required before you can add any Popup Menus to') #DISPLAY('windows in your application. For more details') #DISPLAY('see the on-line help.') #DISPLAY('') #!------------------------------------------------------------------------ #AT(%CustomGlobalDeclarations) #IF(%Target32) #IF(%ApplicationLocalLibrary) #PROJECT('TCPOP32L.LIB') #ELSE #PROJECT('TCPOP32.LIB') #ENDIF #ELSE #IF(%ApplicationLocalLibrary) #PROJECT('TCPOP16L.LIB') #ELSE #PROJECT('TCPOP16.LIB') #ENDIF #ENDIF #ENDAT #!------------------------------------------------------------------------ #AT(%GlobalMap) INCLUDE('TCPOPUP.CLW','PopupLibrary') #ENDAT #!------------------------------------------------------------------------ #AT(%GlobalData) INCLUDE('TCPOPUP.CLW','PopupGlobals') #ENDAT #!------------------------------------------------------------------------ #! #! #EXTENSION(PowerPopupMenu, 'ToolCraft Power Popup Menus' ),PROCEDURE,LAST,HLP('~PowerPopupMenu') #BUTTON('Popup Menus'),AT(10,,180) #BOXED('Controls with Popup Menus'),AT(,3) #BUTTON('Popup Menu Setup'),MULTI(%PopupMenuControlInstance,%PopupMenuControl & SUB('(Alias)',1,%UsePopupAlias*7)),HLP('~PowerPopupMenu'),INLINE,AT(,15) #PROMPT('Control to Create Menu On:',CONTROL),%PopupMenuControl #PROMPT('',CHECK),%UsePopupAlias #DISPLAY('Define Popup Menu Alias:'),AT(,17) #BOXED,WHERE(%UsePopupAlias) #ENABLE(%UsePopupAlias),CLEAR #PROMPT('Alias Popup Control From:',@S40),%AliasPopupControlFrom,PROMPTAT(10,35),AT(100,35,90) #VALIDATE(%AliasPopupControlFrom,'Field Equate or Field Number Must be Entered for From Value') #PROMPT('Alias Popup Control Thru:',@S40),%AliasPopupControlThru,PROMPTAT(10,47),AT(100,47,90) #ENDENABLE #ENDBOXED #BOXED,WHERE(NOT %UsePopupAlias) #BUTTON('Popup Menu Item'),MULTI(%PopupMenuInstance,%PopupMenuItemType & ' ' & %PopupMenuItem),HLP('~PowerPopupMenuItems'),INLINE,AT(,35) #PROMPT('Menu Item Type:',DROP('ITEM|CHECK|SEPARATOR|SUBMENU|ENDSUBMENU')),%PopupMenuItemType,DEFAULT('ITEM') #ENABLE(%PopupMenuItemType = 'ITEM' OR %PopupMenuItemType = 'CHECK'),CLEAR #PROMPT('Menu Item Text:',@S100),%PopupMenuItem #PROMPT('Menu Item Equate:',@S50),%PopupMenuItemEquate #PROMPT('Action when Pressed:',DROP('No Special Action|Execute an Instruction|Call a Procedure|Call with Thread Manager|Run a Program')),%PopupMenuAction,DEFAULT('No Special Action'),PROMPTAT(,49),AT(,49) #BOXED,WHERE(%PopupMenuAction = 'Execute an Instruction') #DISPLAY(''),AT(,55) #PROMPT('Instruction to Execute:',@S255),%PopupMenuExecute #ENDBOXED #BOXED,WHERE(%PopupMenuAction = 'Call a Procedure') #DISPLAY(''),AT(,55) #PROMPT('Procedure Name:',PROCEDURE),%PopupMenuProcedure #PROMPT('Initiate Thread:',CHECK),%PopupMenuThread #ENABLE(%PopupMenuThread = %True) #PROMPT('Thread Stack:',SPIN(@n7,5000,64000,500)),%PopupMenuThreadStack,DEFAULT(25000) #ENDENABLE #ENABLE(%PopupMenuThread = %False),CLEAR #PROMPT('Parameters:',@s80),%PopupMenuParameters #ENDENABLE #ENDBOXED #BOXED,WHERE(%PopupMenuAction = 'Call with Thread Manager') #DISPLAY(''),AT(,55) #PROMPT('Procedure Name:',PROCEDURE),%TMPopupMenuProcedure #PROMPT('Thread Stack:',SPIN(@n7,5000,64000,500)),%TMPopupMenuThreadStack,DEFAULT(25000) #PROMPT('Maximum Instances:',SPIN(@n2,1,40,1)),%TMPopupMaxInstances,DEFAULT(1) #ENDBOXED #BOXED,WHERE(%PopupMenuAction = 'Run a Program') #DISPLAY(''),AT(,55) #PROMPT('Program Name:',@S40),%PopupMenuRunName #PROMPT('Parameters:',@s40),%PopupMenuRunParameters #ENDBOXED #ENDENABLE #ENDBUTTON #ENDBOXED #ENDBUTTON #ENDBOXED #ENDBUTTON #! #!------------------------------------------------------------------------ #AT(%DataSectionBeforeWindow) #DECLARE(%PopupMenuItemNumber) #SUSPEND #? #FOR(%PopupMenuControlInstance),WHERE(NOT %UsePopupAlias) #CLEAR(%PopupMenuItemNumber) #SUSPEND #? #?!*** Field Equates for %PopupMenuControl Popup Menu Items *** #FOR(%PopupMenuInstance) #CASE(%PopupMenuItemType) #OF('SUBMENU') #OROF('ENDSUBMENU') #CYCLE #ENDCASE #SET(%PopupMenuItemNumber,%PopupMenuItemNumber+1) #IF(%PopupMenuItemEquate) %[25]PopupMenuItemEquate EQUATE(%PopupMenuItemNumber) #ENDIF #ENDFOR #RESUME #ENDFOR #? #? #RESUME #ENDAT #! #! #!------------------------------------------------------------------------ #AT(%WindowEventHandling,'OpenWindow') #DECLARE(%ContinueLineFlag) #DECLARE(%CreatePopupParm) #DECLARE(%ItemDelimeter) #FOR(%PopupMenuControlInstance),WHERE(NOT %UsePopupAlias) #CLEAR(%ContinueLineFlag) #CLEAR(%ItemDelimeter) #CLEAR(%CreatePopupParm) #FOR(%PopupMenuInstance) #CASE(%PopupMenuItemType) #OF('ITEM') #SET(%CreatePopupParm,%CreatePopupParm & %ItemDelimeter & %PopupMenuItem) #OF('CHECK') #SET(%CreatePopupParm,%CreatePopupParm & %ItemDelimeter & %PopupMenuItem & '%CHK') #OF('SEPARATOR') #SET(%CreatePopupParm,%CreatePopupParm & %ItemDelimeter & '-') #OF('SUBMENU') #SET(%CreatePopupParm,%CreatePopupParm & %ItemDelimeter & '[') #SET(%ItemDelimeter,'') #CYCLE #OF('ENDSUBMENU') #SET(%CreatePopupParm,%CreatePopupParm & ']') #ENDCASE #SET(%ItemDelimeter,'|') #IF(LEN(%CreatePopupParm) > 125) #IF(NOT %ContinueLineFlag) #SET(%ContinueLineFlag,%TRUE) CreatePopup(%PopupMenuControl,'%CreatePopupParm' & | #ELSE '%CreatePopupParm' & | #ENDIF #CLEAR(%CreatePopupParm) #ENDIF #ENDFOR #IF(NOT %ContinueLineFlag) CreatePopup(%PopupMenuControl,'%CreatePopupParm') #ELSE '%CreatePopupParm') #ENDIF #ENDFOR #FOR(%PopupMenuControlInstance),WHERE(%UsePopupAlias) #IF(%AliasPopupControlThru) AliasPopup(%PopupMenuControl,%AliasPopupControlFrom,%AliasPopupControlThru) #ELSE AliasPopup(%PopupMenuControl,%AliasPopupControlFrom) #ENDIF #ENDFOR #EMBED(%AfterPopupMenuCreation,'After Popup Menus are Created') #ENDAT #! #! #!------------------------------------------------------------------------ #AT(%ControlOtherEventHandling) #FOR(%PopupMenuControlInstance),WHERE(%PopupMenuControl=%Control AND NOT %UsePopupAlias) #SUSPEND #?IF EVENT() = POPUP:EVENT:Accepted #?CASE POPUP:Choice #CLEAR(%ValueConstruct) #FOR(%PopupMenuInstance) #CASE(%PopupMenuItemType) #OF('SUBMENU') #OROF('ENDSUBMENU') #CYCLE #ENDCASE #SET(%ValueConstruct,%ValueConstruct+1) #SUSPEND #IF(%PopupMenuItemEquate) #?OF %PopupMenuItemEquate #ELSE #?OF %ValueConstruct #ENDIF #CASE(%PopupMenuAction) #OF('Execute an Instruction') %PopupMenuExecute #OF('Call a Procedure') #IF(%PopupMenuProcedure) #IF(%PopupMenuThread) IF START(%PopupMenuProcedure,%PopupMenuThreadStack). #ELSE %PopupMenuProcedure %PopupMenuParameters #ENDIF #ENDIF LocalRequest = OriginalRequest #IF(%ProcedureTemplate <> 'PowerBrowse') DO RefreshWindow #ENDIF #OF('Call with Thread Manager') FREE(QTM); CLEAR(QTM) IF TmQuery(QTM,'%TMPopupMenuProcedure') => %TMPopupMaxInstances GET(QTM,1) POST(EVENT:Restore,,QTM:Id) ELSE IF START(%TMPopupMenuProcedure,%TMPopupMenuThreadStack). END FREE(QTM); CLEAR(QTM) LocalRequest = OriginalRequest #IF(%ProcedureTemplate <> 'PowerBrowse') DO RefreshWindow #ENDIF #OF('Run a Program') RUN('%PopupMenuRunName %PopupMenuRunParameters') LocalRequest = OriginalRequest #IF(%ProcedureTemplate <> 'PowerBrowse') ForceRefresh = True DO RefreshWindow #ENDIF #ENDCASE #RESUME #ENDFOR #?END #RESUME #?END #ENDFOR #ENDAT